package com.nifostasky.comic.config;

import com.google.code.kaptcha.Constants;
import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.google.code.kaptcha.util.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Properties;

@Configuration
public class KaptchaConfig {
    /**
     * 6位注册 字符验证码
     * @return
     */
    @Bean(name = "captchaProducerMail")
    public DefaultKaptcha getKaptchaMailBean(){

        /**
         * 配置生成验证码的属性
         */
        Properties properties = new Properties();
        //是否有边框 默认为 yes , 可以自定义 yes,no
        properties.setProperty(Constants.KAPTCHA_BORDER,"yes");
        //验证码文本字符颜色 默认为 color.BLACK
        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_COLOR,"black");
        //验证码图片宽度,默认为200
        properties.setProperty(Constants.KAPTCHA_IMAGE_WIDTH,"160");
        //验证码图片高度,默认为50
        properties.setProperty(Constants.KAPTCHA_IMAGE_HEIGHT,"60");
        //验证码文本字符大小 默认为40
        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_SIZE,"38");
        //KAPTCHA_SESSION_KEY ?
        properties.setProperty(Constants.KAPTCHA_SESSION_CONFIG_KEY,"kaptchaCode");
        //验证码文本字符长度 默认为6;
        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_LENGTH,"6");
        //验证码文本字体样式,默认为 Arial, Courier
        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_NAMES,"Arial,Courier");
        //图片样式,片样式
        // 水纹com.google.code.kaptcha.impl.WaterRipple
        // 鱼眼com.google.code.kaptcha.impl.FishEyeGimpy
        // 阴影com.google.code.kaptcha.impl.ShadowGimpy  .....
        properties.setProperty(Constants.KAPTCHA_OBSCURIFICATOR_IMPL,"com.google.code.kaptcha.impl.ShadowGimpy");
        /**
         * 加载配置
         */
        DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
        Config config = new Config(properties);
        defaultKaptcha.setConfig(config);
        return defaultKaptcha;
    }

    /**
     * 4位登录 字符验证码
     * @return
     */
    @Bean(name = "captchaProducerLogin")
    public DefaultKaptcha getKaptchaLoginBean(){

        /**
         * 配置生成验证码的属性
         */
        Properties properties = new Properties();
        //是否有边框 默认为 yes , 可以自定义 yes,no
        properties.setProperty(Constants.KAPTCHA_BORDER,"yes");
        //验证码文本字符颜色 默认为 color.BLACK
        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_COLOR,"black");
        //验证码图片宽度,默认为200
        properties.setProperty(Constants.KAPTCHA_IMAGE_WIDTH,"160");
        //验证码图片高度,默认为50
        properties.setProperty(Constants.KAPTCHA_IMAGE_HEIGHT,"60");
        //验证码文本字符大小 默认为40
        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_SIZE,"38");
        //KAPTCHA_SESSION_KEY ?
        properties.setProperty(Constants.KAPTCHA_SESSION_CONFIG_KEY,"kaptchaCode");
        //验证码文本字符长度 默认为5;
        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_LENGTH,"4");
        //验证码文本字体样式,默认为 Arial, Courier
        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_NAMES,"Arial,Courier");
        //图片样式,片样式
        // 水纹com.google.code.kaptcha.impl.WaterRipple
        // 鱼眼com.google.code.kaptcha.impl.FishEyeGimpy
        // 阴影com.google.code.kaptcha.impl.ShadowGimpy  .....
        properties.setProperty(Constants.KAPTCHA_OBSCURIFICATOR_IMPL,"com.google.code.kaptcha.impl.ShadowGimpy");
        /**
         * 加载配置
         */
        DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
        Config config = new Config(properties);
        defaultKaptcha.setConfig(config);
        return defaultKaptcha;
    }
}
